// 1.通过调用RegExp 对象的构造函数创建
let exp = new RegExp(/^\w{3,6}$/);

//  \w => 匹配包括下划线的任何单位字符串. 等价于 '[A-Za-z0-9_]'

// test(string: string): boolean;
console.log(exp.test('hliushi'))    // false

console.log(exp.test('liushi'))     // true

// 2.通过字面量创建        // 注释中间放表达式, 就是正则字面量
var exp02 = /^\w+$/;
console.log(exp02.test('hliushi'))
console.log(exp.test('hliushi'))


// 正则表达式中的替换
// replace() 方法可以实现替换字符串操作, 用来替换的参数可以是一个字符串或则一个正则表达式

var s = '啥发送发电哈数据分开拉伸hliushi@foxmail.com和1367505542@qq.com'.replace(/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/, 'hliushifox@gmail.com');

// 正则表达式参数
//  /表达式/[switch]  switch 也称为修饰符, 按照什么样的模式来匹配, 有三个值
//  /xxx/g  : 全局匹配 --> 匹配字符串的所有内容
//  /xxx/   : 非全局匹配 --> 匹配到第一个字符串就返回
//  /xxx/i  : 忽略大小写
//  /xxx/gi : 全局匹配和忽略大小写
var s2 = '啥发送发电哈数据分开拉伸hliushi@foxmail.com和1367505542@qq.com'.replace(/[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/g, 'hliushifox@gmail.com');
console.log(s)
console.log(s2)


console.log('---------------------')
var str = 'andy和red';
// var newStr = str.replace('andy', 'bady');
var newStr = str.replace(/andy/, 'bady');
console.log(newStr)
